// DirectDraw Proxed APIs

extern HRESULT WINAPI extDirectDrawCreateProxy(GUID FAR *lpguid, LPDIRECTDRAW FAR *lplpdd, IUnknown FAR *pu);
extern HRESULT WINAPI extDirectDrawCreateExProxy(GUID FAR *lpguid, LPDIRECTDRAW FAR *lplpdd, REFIID RefIid, IUnknown FAR *pu);
extern HRESULT WINAPI extDirectDrawEnumerateProxy(LPDDENUMCALLBACK, LPVOID);
extern HRESULT WINAPI extDirectDrawEnumerateExProxy(LPDDENUMCALLBACKEX, LPVOID, DWORD);

// DirectDraw Surface Proxed methods

extern HRESULT WINAPI extQueryInterfaceSProxy(void *, REFIID, LPVOID *);
extern ULONG WINAPI extAddRefSProxy(LPDIRECTDRAWSURFACE);
extern HRESULT WINAPI extReleaseSProxy(LPDIRECTDRAWSURFACE);
extern HRESULT WINAPI extAddOverlayDirtyRectProxy(LPDIRECTDRAWSURFACE, LPRECT);
extern HRESULT WINAPI extBltBatchProxy(LPDIRECTDRAWSURFACE, LPDDBLTBATCH, DWORD, DWORD);
extern HRESULT WINAPI extEnumOverlayZOrdersProxy(LPDIRECTDRAWSURFACE, DWORD, LPVOID, LPDDENUMSURFACESCALLBACK);
extern HRESULT WINAPI extFlipProxy(LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE, DWORD);
extern HRESULT WINAPI extGetBltStatusProxy(LPDIRECTDRAWSURFACE , DWORD);
extern HRESULT WINAPI extGetClipperProxy(LPDIRECTDRAWSURFACE, LPDIRECTDRAWCLIPPER FAR*);
extern HRESULT WINAPI extGetFlipStatusProxy(LPDIRECTDRAWSURFACE, DWORD);
extern HRESULT WINAPI extGetOverlayPositionProxy(LPDIRECTDRAWSURFACE, LPLONG, LPLONG);
extern HRESULT WINAPI extIsLostProxy(LPDIRECTDRAWSURFACE);
extern HRESULT WINAPI extLockProxy(LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, DWORD, HANDLE);
extern HRESULT WINAPI extRestoreProxy(LPDIRECTDRAWSURFACE);
extern HRESULT WINAPI extSetOverlayPositionProxy(LPDIRECTDRAWSURFACE, LONG, LONG);
extern HRESULT WINAPI extUnlock1Proxy(LPDIRECTDRAWSURFACE, LPVOID);
extern HRESULT WINAPI extUnlock4Proxy(LPDIRECTDRAWSURFACE, LPRECT);
extern HRESULT WINAPI extUpdateOverlayProxy(LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDOVERLAYFX);
extern HRESULT WINAPI extUpdateOverlayDisplayProxy(LPDIRECTDRAWSURFACE, DWORD);
extern HRESULT WINAPI extUpdateOverlayZOrderProxy(LPDIRECTDRAWSURFACE, DWORD, LPDIRECTDRAWSURFACE);
extern HRESULT WINAPI extFlipProxy(LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE, DWORD);
extern HRESULT WINAPI extBltBatchProxy(LPDIRECTDRAWSURFACE, LPDDBLTBATCH, DWORD, DWORD);
extern HRESULT WINAPI extGetAttachedSurface1Proxy(LPDIRECTDRAWSURFACE, LPDDSCAPS, LPDIRECTDRAWSURFACE *);
extern HRESULT WINAPI extGetAttachedSurface3Proxy(LPDIRECTDRAWSURFACE, LPDDSCAPS, LPDIRECTDRAWSURFACE *);
extern HRESULT WINAPI extGetAttachedSurface4Proxy(LPDIRECTDRAWSURFACE, LPDDSCAPS, LPDIRECTDRAWSURFACE *);
extern HRESULT WINAPI extGetAttachedSurface7Proxy(LPDIRECTDRAWSURFACE, LPDDSCAPS, LPDIRECTDRAWSURFACE *);
extern HRESULT WINAPI extAddAttachedSurfaceProxy(LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE);
extern HRESULT WINAPI extBltProxy(LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDBLTFX);
extern HRESULT WINAPI extBltFastProxy(LPDIRECTDRAWSURFACE, DWORD, DWORD, LPDIRECTDRAWSURFACE, LPRECT, DWORD);
extern HRESULT WINAPI extDeleteAttachedSurfaceProxy(LPDIRECTDRAWSURFACE,  DWORD, LPDIRECTDRAWSURFACE);
extern HRESULT WINAPI extEnumAttachedSurfacesProxy(LPDIRECTDRAWSURFACE, LPVOID, LPDDENUMSURFACESCALLBACK);
extern HRESULT WINAPI extGetCaps1SProxy(LPDIRECTDRAWSURFACE, LPDDSCAPS);
extern HRESULT WINAPI extGetCaps2SProxy(LPDIRECTDRAWSURFACE, LPDDSCAPS);
extern HRESULT WINAPI extGetCaps3SProxy(LPDIRECTDRAWSURFACE, LPDDSCAPS);
extern HRESULT WINAPI extGetCaps4SProxy(LPDIRECTDRAWSURFACE, LPDDSCAPS2);
extern HRESULT WINAPI extGetCaps7SProxy(LPDIRECTDRAWSURFACE, LPDDSCAPS2);
extern HRESULT WINAPI extGetColorKeyProxy(LPDIRECTDRAWSURFACE, DWORD, LPDDCOLORKEY);
extern HRESULT WINAPI extGetDCProxy(LPDIRECTDRAWSURFACE, HDC FAR *);
extern HRESULT WINAPI extGetPaletteProxy(LPDIRECTDRAWSURFACE, LPDIRECTDRAWPALETTE *);
extern HRESULT WINAPI extGetPixelFormatProxy(LPDIRECTDRAWSURFACE, LPDDPIXELFORMAT);
extern HRESULT WINAPI extReleaseDCProxy(LPDIRECTDRAWSURFACE, HDC FAR);
extern HRESULT WINAPI extSetClipperProxy(LPDIRECTDRAWSURFACE, LPDIRECTDRAWCLIPPER);
extern HRESULT WINAPI extSetColorKeyProxy(LPDIRECTDRAWSURFACE, DWORD, LPDDCOLORKEY);
extern HRESULT WINAPI extSetPaletteProxy(LPDIRECTDRAWSURFACE, LPDIRECTDRAWPALETTE);

extern HRESULT WINAPI extGetSurfaceDesc1Proxy(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC);
extern HRESULT WINAPI extGetSurfaceDesc4Proxy(LPDIRECTDRAWSURFACE2, LPDDSURFACEDESC2);

// DirectDraw Proxed methods

extern ULONG WINAPI extAddRefDProxy(LPDIRECTDRAW);
extern ULONG WINAPI extCompactProxy(LPDIRECTDRAW);
extern HRESULT WINAPI extEnumDisplayModesProxy(LPDIRECTDRAW, DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK);
extern HRESULT WINAPI extGetCapsD(LPDIRECTDRAW, LPDDCAPS, LPDDCAPS);
extern HRESULT WINAPI extGetFourCCCodesProxy(LPDIRECTDRAW, LPDWORD, LPDWORD);
extern HRESULT WINAPI extGetMonitorFrequencyProxy(LPDIRECTDRAW, LPDWORD);
extern HRESULT WINAPI extGetScanLineProxy(LPDIRECTDRAW, LPDWORD);
extern HRESULT WINAPI extGetVerticalBlankStatusProxy(LPDIRECTDRAW, LPBOOL);
extern HRESULT WINAPI extRestoreDisplayModeProxy(LPDIRECTDRAW);
extern HRESULT WINAPI extGetAvailableVidMemProxy(LPDIRECTDRAW, LPDDSCAPS, LPDWORD, LPDWORD);
extern HRESULT WINAPI extGetSurfaceFromDCProxy(LPDIRECTDRAW, HDC, LPDIRECTDRAWSURFACE*);
extern HRESULT WINAPI extRestoreAllSurfacesProxy(LPDIRECTDRAW);
extern HRESULT WINAPI extGetDeviceIdentifierProxy(LPDIRECTDRAW, LPDDDEVICEIDENTIFIER, DWORD);
extern HRESULT WINAPI extGetFourCCCodesProxy(LPDIRECTDRAW, LPDWORD, LPDWORD);
extern HRESULT WINAPI extTestCooperativeLevelProxy(LPDIRECTDRAW);
extern HRESULT WINAPI extEnumSurfacesProxy1(LPDIRECTDRAW, DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMSURFACESCALLBACK);
extern HRESULT WINAPI extEnumSurfacesProxy4(LPDIRECTDRAW, DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMSURFACESCALLBACK2);
extern HRESULT WINAPI extInitializeProxy(LPDIRECTDRAW, GUID FAR *);

// DirectDraw Clipper Proxed methods

extern HRESULT WINAPI extQueryInterfaceCProxy(void *, REFIID, LPVOID *);
extern HRESULT WINAPI extAddRefCProxy(LPDIRECTDRAWCLIPPER);
extern HRESULT WINAPI extReleaseCProxy(LPDIRECTDRAWCLIPPER);
extern HRESULT WINAPI extGetClipListProxy(LPDIRECTDRAWCLIPPER, LPRECT, LPRGNDATA, LPDWORD);
extern HRESULT WINAPI extGetHWndProxy(LPDIRECTDRAWCLIPPER, HWND FAR *);
extern HRESULT WINAPI extInitializeCProxy(LPDIRECTDRAWCLIPPER, LPDIRECTDRAW, DWORD);
extern HRESULT WINAPI extIsClipListChangedProxy(LPDIRECTDRAWCLIPPER, BOOL FAR *);
extern HRESULT WINAPI extSetClipListProxy(LPDIRECTDRAWCLIPPER, LPRGNDATA, DWORD);
extern HRESULT WINAPI extSetHWndProxy(LPDIRECTDRAWCLIPPER, DWORD, HWND);

// DirectDraw Palette Proxed methods

extern HRESULT WINAPI extQueryInterfacePProxy(void *, REFIID, LPVOID *);
extern HRESULT WINAPI extAddRefPProxy(LPDIRECTDRAWPALETTE);
extern HRESULT WINAPI extReleasePProxy(LPDIRECTDRAWPALETTE);
extern HRESULT WINAPI extGetCapsPProxy(LPDIRECTDRAWPALETTE, LPDWORD);
extern HRESULT WINAPI extGetEntriesProxy(LPDIRECTDRAWPALETTE, DWORD, DWORD, DWORD, LPPALETTEENTRY);
extern HRESULT WINAPI extSetEntriesProxy(LPDIRECTDRAWPALETTE, DWORD, DWORD, DWORD, LPPALETTEENTRY);
